#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//
//int main()
//{
//    int n = 0;
//    scanf("%d", &n);
//    int num1 = 30;
//    int num2 = 90;
//    if (n <= 10)
//    {
//        printf("^_^ %d", 9 * n);
//    }
//    else
//    {
//        n -= 10;
//        while (n > 0)
//        {
//            if (num2 > num1 && n >= 30)
//            {
//                num1 += 3 * 30;
//                n -= 30;
//            }
//            else if (num2 > num1 && n < 30)
//            {
//                num1 += 3 * n;
//                n = 0;
//            }
//            else if (num1 >= num2 && n >= 10)
//            {
//                num1 += 3 * 10;
//                num2 += 90;
//                n -= 10;
//            }
//            else if (num1 >= num2 && n < 10)
//            {
//                num1 += 3 * n;
//                num2 += 9 * n;
//                n = 0;
//            }
//        }
//        if (num1 > num2)
//            printf("@_@ %d", num1);
//        else if (num2 > num1)
//            printf("^_^ %d", num2);
//        else
//            printf("-_- ");
//    }
//
//    return 0;
//}



//#include<stdio.h>
//
//int main()
//{
//    int n = 0;
//    scanf("%d", &n);
//    while (n--)
//    {
//        int wnum = 0;
//        scanf("%d", &wnum);
//        int x, y;
//        scanf("%d %d", &x, &y);
//        int sum = x + y;
//        int count[100] = { 0 };
//        while (sum--)
//        {
//            int i, j;
//            scanf("%d %d", &i, &j);
//            count[i]++;
//        }
//
//        int k = 0;
//        for (int i = 0; i < 100; i++)
//        {
//            if (count[i] != 0)
//                k++;
//        }
//
//        printf("%d\n", k);
//    }
//    return 0;
//}

//#include<stdio.h>
//
//int find(double arr[], int n)
//{
//    int max = 0;
//    int count = 0;
//    for (int i = 0; i < n; i++)
//    {
//        count = 1;
//        for (int j = i + 1; j < n; j++)
//        {
//            if (arr[i] == arr[j])
//                count++;
//        }
//        if (count > max)
//        {
//            max = count;
//        }
//    }
//
//    return max;
//}

//int main()
//{
//    int n = 0;
//    scanf("%d", &n);
//    int arr[10];
//    double count[10];
//    int flag = 0;
//    int num = 0;
//    for (int i = 0; i < n; i++)
//    {
//        int a, b;
//        scanf("%d %d", &a, &b);
//        if (a != 0)
//        {
//            double k = (double)b / a;
//            count[i] = k;
//        }
//        else
//        {
//            num++;
//        }
//
//        if (b == 0 && a == 0)
//        {
//            flag = 1;
//        }
//    }
//
//    int max = find(count, n);
//    if (flag == 1)
//    {
//        max++;
//    }
//    if (max > num)
//        printf("%d", max);
//    else
//        printf("%d", num);
//
//    return 0;
//}


#include<stdio.h>
int find1(int arr[], int n)
{
    int max = 0;
    int count = 0;
    for (int i = 0; i < n; i++)
    {
        count = 1;
        for (int j = i + 1; j < n; j++)
        {
            if (arr[i] == arr[j])
            {
                count++;
            }
        }
        if (count > max)
            max = count;
    }
    return max;
}
int find2(int arr[], int n)
{
    int max = 0;
    int count = 0;
    int k = 0;
    for (int i = 0; i < n; i++)
    {
        count = 1;
        for (int j = i + 1; j < n; j++)
        {
            if (arr[i] == arr[j])
            {
                k = arr[i];
                count++;
            }
        }
        if (count > max)
        {
            max = count;
        }
    }
    return k;
}

int main()
{
    int n = 0;
    scanf("%d", &n);
    getchar();
    int arr[10];
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
        getchar();
    }
    int max = find1(arr, n);
    int l = find2(arr, n);
    printf("%d %d", l, max);

    return 0;
}